package com.ocm.tourism.core.service;

import java.util.List;

import com.ocm.tourism.core.domain.Business;
import com.ocm.tourism.core.domain.SaleOff;
import com.ocm.tourism.core.domain.ScheduleTour;
import com.ocm.tourism.core.domain.TourType;

public interface ScheduleTourService {

   Business findTouristAgency(long businessId);

   void saveTouristAgency(Business business);

   void saveScheduleTour(ScheduleTour scheduleTour);
   
   void deleteScheduleTour(Long tourId);

   List<Business> findTouristAgencies(int firstResult, int maxResults);

   long countTouristAgencies();
   
   List<Business> findTouristAgencies(int firstResult, int maxResults, long participantId);

   long countTouristAgencies(long participantId);

   ScheduleTour findScheduleTour(long tourId);

   List<ScheduleTour> findTours(long agencyId, int firstResult, int maxResults);
   
   long countTours(long agencyId);

   SaleOff findSaleOff(long saleoffId);

   List<SaleOff> findSaleOffs(long tourId, int firstResult, int maxResults);
   
   long countSaleOffs(long tourId);

   List<SaleOff> findSaleOffAdvertisements(long agencyId, int firstResult, int maxResults);

   long countSaleOffAdvertisements(long agencyId);

   long countTayNinhTourAdvs();

   List<ScheduleTour> findScheduleTourAdvs(int firstResult, int maxResults);
   
   long countOtherTayNinhTourAdvs();

   List<ScheduleTour> findOthersScheduleTourAdvs(int firstResult, int maxResults);
   
   long countToursByTourType(TourType tourType);

   List<ScheduleTour> findToursByTourType(TourType tourType, int firstResult, int maxResults);
}
